// 作者:于大明
// 职责：处理业务逻辑

let mixin = {
	// 负责程序中需要进行set的数据 就是页面交互需要改的数据 比如点击checkbox 需要设置true false 和存放ajax的输入输出 (尽量少去定义data里面的属性 多用computed或者filters或者组件进行处理) 
	// 1 能不能在页面单行代码实现
	// 2 能不能不用data methods去实现这个功能
	data() {
		return {
			current: 0,
			items: ['详情', '优惠信息','下载地址', 'Vip区'],
			vipPrices: [{
				text:'包月会员',
				days: 31,
				price: 19.9,
				type: 10,
				desc:`会员特权:
					1.自开通后31天内所有课程资源都可免费下载;
					2.每日可免费下载10个资源;
					3.包月会员有效期间，可联系客服补差价升级至全站会员;
				`
			}, {
				text:'全站会员',
				days: 720,
				price: 99,
				type: 20,
				desc:`会员特权：
					1.全站资源任意下载，每日稳定更新5-20条；
					2.每日可免费下载100个资源;
					3.专属客服*24小时服务;
					4.提供推广分销合作权益;
				`
			}, {
				text:'终身会员',
				days: 99999,
				price: 299,
				type: 30,
				desc:`会员特权：
					1.会员终身有效，不受以后任何涨价影响，资源永久保存！;
					2.每日可免费下载1000个资源;
					3.专属客服*24小时服务;
					4.享受全站会员所有权益（全站会员期间，可补差价
					升级);
					5.提供合伙人计划;
				`
			}]
		};
	},
	// 负责和页面事件进行交互
	methods: {
		setCurrent(current){
			this.current=current;
		},
		// 注册事件 注意 暴露给外面的事件 以_on开头 里面的事件不用
		_onClick() {
			this.$emit('onClick'); // 事件尽量用on开头
		},
	},
	// 不要set的数据 统一用computed实现(能用computed 实现的 尽量用他实现 不要用data和method处理) 有返回值的不需要传参的method用computed实现 
	computed: {
		calItems(){
			if(this.inputItem.productServiceType==20){
				return this.$_(this.items).take(2).value();
			}else{
				return this.items;
			}
		},
		item() {
			return this._.cloneDeep(this.inputItem);
		},
	},
	// 负责格式化数据 有返回值的需要传参的method 用filters实现
	filters: {
		// 多个参数filter 调用  {{day|weekDayFmt(getStudentListIn.month)}} filter filter后缀加上Fmt  vue3参考: http://knowledge.whcewei.com/CodeKnowledge/Detail-91D4B057-821A-4A0C-96E5-C0BC8CDDDC9C.aspx
		//weekDayFmt(day, yearMonth) {
		//    var weekDay = moment(yearMonth + "-" + day).day();
		//    var weekObj = { 1: "一", 2: "二", 3: "三", 4: "四", 5: "五", 6: "六", 0: "日" };
		//    return weekObj[weekDay];
		//},
	},
	// 负责数据变化后需要和接口交互
	watch: {
		// 监控查询条件的变化 自动请求数据
		//'calcGetStudentListIn': {
		//    handler(val, oldval) {
		//        if (this.$util.isChgForWatch(val, oldval, ['pageIndex', 'sarchValue'])) { // 监控对象中那些数据发生了变化
		//            this.getPageList();
		//        }
		//    },
		//    deep: true,
		//    immediate: true,
		//}
	},
}
export default mixin;